package com.cskaoyan.javase.basic._8loop;

import java.util.Scanner;

/**
 * Java当中的循环结构，无论是for、while还是do...while，
 * 其结构都由五部分部分组成：
 * 循环控制变量: 用来结束循环的控制变量
 * 初始化语句: 初始化循环控制变量的
 * 条件判断语句（布尔表达式）: 用来结束循环的条件
 * 循环体语句: 被循环执行的代码
 * 循环控制语句: 一开始能够进行循环,但是需要改变条件,让循环终止
 *
 * for,while,do...while的区别:
 *      1.for循环和while循环完全等价,一模一样
 *          但是我们一般优先考虑使用for循环
 *      2.do...while和for,while不同:
 *          for,while会先判断再进行循环,这意味着它们可能一次循环都不执行
 *          但是do..while是不管三七二十一,上来先执行一遍循环体
 *          所以最少执行一次
 *
 * @since 09:42
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        /*
            循环控制变量是循环中的局部变量
            一般使用i,j,k等
            循环体大括号中定义的变量也是局部变量
         */
        // for循环的快捷键fori
        /*for (int i = 0; i < 10; i++) {
            int a = 10;
        }

        int i = 100;
        int a = 200;*/


        // 需求: 累加 键盘录入一个n,求n+(n-1)+...+1;
        System.out.println("请键盘录入一个int正整数:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        // 累加需要一个和的变量
        int sum = 0;
        for (int i = 1; i <= num; i++) {
            sum += i;
        }
        System.out.println(sum);
        // 需求: 累乘
        System.out.println("请键盘录入一个int正整数:");
        int num2 = sc.nextInt();
        // 累乘需要一个积的变量
        int product = 1;
        for (int i = 1; i <= num2; i++) {
            product *= i;
        }
        System.out.println(product);
    }
}
